<script>
import Vue from 'vue';
import WebSocketUtil from '@/utils/websocket.js';
import store from '@/store'
import {
    getSingleLists
} from "@/api/chat.js"
export default {
    globalData: {
        titleheight: 0,
        titletop: 0,
    },
    onLaunch: function () {
        uni.getSystemInfo({
            success: function (e) {
                Vue.prototype.platform = e.platform;
                uni.setStorageSync('platform', e.platform);
                // #ifndef MP
                Vue.prototype.StatusBar = e.statusBarHeight;
                if (e.platform == 'android') {
                    Vue.prototype.CustomBar = e.statusBarHeight + 50;
                } else {
                    Vue.prototype.CustomBar = e.statusBarHeight + 45;
                };
                // #endif
                // #ifdef MP-WEIXIN
                Vue.prototype.StatusBar = e.statusBarHeight;
                let custom = wx.getMenuButtonBoundingClientRect();
                Vue.prototype.Custom = custom;
                Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
                // #endif		
                // #ifdef MP-ALIPAY
                Vue.prototype.StatusBar = e.statusBarHeight;
                Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight;
                // #endif
            }
        })
        console.log('App Launch')
    },
    onShow: function () {
        console.log('App Show')
        // #ifdef MP-WEIXIN
        this.autoUpdate()
        // #endif
        if (uni.getStorageSync("token")) {
            this.getChatList()
        }
        this.activateWebSocket();
    },
    onHide: function () {
        console.log('App Hide')
    },
    methods: {
        getChatList() {
            getSingleLists().then(res => {
                if (res.code == 1) {
                    // 聊天列表
                    store.commit('SET_CHATLIST', res.data);
                }
            })
        },
        activateWebSocket() {
            console.log(111)
            // 在这里调用 WebSocket 封装文件中的连接方法
            WebSocketUtil.connectWebSocket();
            // 启动 WebSocket 连接的保持活动逻辑
            WebSocketUtil.startWebSocketKeepAlive();
            // 断开连接
            // WebSocketUtil.disconnectWebSocket()
        },
        getHeight() {
            let res = uni.getMenuButtonBoundingClientRect();
            this.titletop = res.top;
            this.titleheight = res.height
        },
        autoUpdate: function () {
            var self = this
            // 获取小程序更新机制兼容
            if (wx.canIUse('getUpdateManager')) {
                const updateManager = wx.getUpdateManager()
                //1. 检查小程序是否有新版本发布
                updateManager.onCheckForUpdate(function (res) {
                    // 请求完新版本信息的回调
                    if (res.hasUpdate) {
                        //检测到新版本，需要更新，给出提示
                        wx.showModal({
                            title: '更新提示',
                            content: '检测到新版本，是否下载新版本并重启小程序？',
                            success: function (res) {
                                if (res.confirm) {
                                    //2. 用户确定下载更新小程序，小程序下载及更新静默进行
                                    self.downLoadAndUpdate(updateManager)
                                } else if (res.cancel) {
                                    //用户点击取消按钮的处理，如果需要强制更新，则给出二次弹窗，如果不需要，则这里的代码都可以删掉了
                                    wx.showModal({
                                        title: '温馨提示~',
                                        content: '本次版本更新涉及到新的功能添加，旧版本无法正常访问的哦~',
                                        showCancel: false,//隐藏取消按钮
                                        confirmText: "确定更新",//只保留确定更新按钮
                                        success: function (res) {
                                            if (res.confirm) {
                                                //下载新版本，并重新应用
                                                self.downLoadAndUpdate(updateManager)
                                            }
                                        }
                                    })
                                }
                            }
                        })
                    }
                })
            } else {
                // 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
                wx.showModal({
                    title: '提示',
                    content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
                })
            }
        },
        /**
         * 下载小程序新版本并重启应用
         */
        downLoadAndUpdate: function (updateManager) {
            var self = this
            wx.showLoading();
            //静默下载更新小程序新版本
            updateManager.onUpdateReady(function () {
                wx.hideLoading()
                //新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                updateManager.applyUpdate()
            })
            updateManager.onUpdateFailed(function () {
                // 新的版本下载失败
                wx.showModal({
                    title: '已经有新版本了哟~',
                    content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
                })
            })
        }
    }
}
</script>

<style lang="scss">
@import "uview-ui/index.scss";
@import "static/style/base.scss";
</style>
